home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
MacWorld 1999 April
/
Macworld (1999-04).dmg
/
Serious Software
/
GrooveMaker demo
/
GrooveMaker Demo
/
Media
/
Synth.dxr
/
00188_Field_buttare1.txt
< prev
next >
Wrap
Text File
|
1998-07-27
|
4KB
|
119 lines
on createGlobalVariable
global gFirstSynth,gLastSynth,gLastSprite
-- gFirstSynth è il primo synth che vedo, gLastSynth è l'ultimo
-- gLastSprite è la sprite in cui si trova l'ultimo synth marcato
-- se il primo marker è pieno
if the name of member the memberNum of sprite 68 <> "m" then
set gFirstSynth = integer(the name of member the memberNum of sprite 68)
set gLastSynth = integer(the name of member the memberNum of sprite 68)
set gLastSprite = 68
repeat with i = 69 to 73
if the name of member the memberNum of sprite i = "m" then exit repeat
set gLastSynth = integer(the name of member the memberNum of sprite i)
set gLastSprite = i
end repeat
-- se il primo marker è vuoto
else
set gFirstSynth = 0
set gLastSynth = 0
set gLastSprite = 67
end if
end
-------------------------------------------------------------------------------
on handleSprite
global gPosVolSynth,gPosPanSynth
-- si posizionano il volume e il pan
set the locV of sprite 45 to gPosVolSynth
set the locV of sprite 46 to gPosPanSynth
updateStage
-- fieldElencoSynthSalvati
repeat with i = 76 to 79
set the visible of sprite i to false
end repeat
-- sprite con i numeri dei synth marcati
repeat with i = 68 to 73
puppetSprite i,true
end repeat
end
-------------------------------------------------------------------------------
on createList
global posRectList
set posRectList = []
repeat with i = 68 to 73
set temp = [the loc of sprite i,the rect of sprite i]
append posRectList,temp
end repeat
end
****************************************************************
-- arrivo a questa funzione cliccando su una nota, passo alla funzione l'ottava a cui appartiene la nota
on playNote oct
global gProg,gArp,gOnSynth,gPosVolSynth,gPosPanSynth,gSynthSel
global progList,arpList,synthList
put the name of member the memberNum of sprite the clickOn into nota
-- non è in play, si accende
if char 1 of nota <> "y" then
set Gnota = "y" & nota
set the memberNum of sprite the clickOn to the number of member Gnota
updatestage
-- aggiorno la sequenza
append synthList,nota & oct
else -- è in play, si spegne
set nota = chars(nota,2,length(nota))
set the memberNum of sprite the clickOn to the number of member nota
updatestage
deleteAt synthList,getPos(synthList,nota & oct)
end if
-- se ho tolto l'ultimo nota si spegne il synth
if synthList = [] then
set gOnSynth = 0
IKSynthStop
else
if not gOnSynth then set gOnSynth = 1
-- aggiorno il play
-- calcolo arp
case(getPos(arpList,gArp)) of
1,2,3,4:set arp = integer(chars(gArp,3,length(gArp)))/4
otherwise
set arp = 4
end case
-- vol e pan
IKSynthVolume integer(128*(-gPosVolSynth+54)/45)
IKSynthPan integer(128*(-gPosPanSynth+54)/45)
IKSynthArp getPos(progList,gProg)-1,arp,createSeq()
end if
-- se c'è l'hilite intorno ai marker sparisce
if gSynthSel then
set the locH of sprite 74 to -20
set gSynthSel = 0
end if
end
****************************************************************
-- click globale
-- se clicco e c'è il fieldElencosynthsalvati aperto si chiude
on mouseUp
if the visible of sprite 76 then
repeat with i = 76 to 79
set the visible of sprite i to false
end repeat
end if
end